﻿namespace Paw.Services
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.Serialization;
    using System.Text;
    using System.ServiceModel;
    using System.ServiceModel.Web;
    using Paw.Services.Models;
    using System.ServiceModel.Channels;

    [ServiceContract]
    public interface INotificationService
    {
        [OperationContract]
        [WebInvoke
            (Method = "POST",
            UriTemplate = "Notify",
            RequestFormat = WebMessageFormat.Xml,
            BodyStyle = WebMessageBodyStyle.Bare
            )
        ]
        void Notify(Message message);

        //[OperationContract]
        //[WebInvoke
        //    (Method = "GET",
        //    UriTemplate = "Notifications/{id}")
        //]
        //Message GetNotifications(string id);

        [OperationContract]
        void SubscribeMyPhone(Guid phoneID, string channelURI);

        [OperationContract]
        void PushRawData(string rawMessage);

        [OperationContract]
        void PushToast(string ToastTitle, string toastMessage);

        [OperationContract]
        void PushTileupdate(string tileTitle, int tileCount, string tileImageURI);

    }
}